/**
 * @param {number[][]} envelopes
 * @return {number}
 */
var maxEnvelopes = function(envelopes) {
  const dp = new Array(envelopes.length).fill(1);
  envelopes.sort((a, b) => {
    if(a[0] == b[0]) {
      return b[1] - a[1];
    } else {
      return a[0] - b[0];
    }
  });
  for(let i = 1; i < envelopes.length; i++) {
    for(let j = 0; j < i; j++) {
      if(envelopes[i][0] > envelopes[j][0] && envelopes[i][1] > envelopes[j][1]) {
        dp[i] = Math.max(dp[i], dp[j] + 1);
      }
    }
  }
  return Math.max(...dp);
};
let envelopes = [[5,4],[6,4],[6,7],[2,3]];
console.log(maxEnvelopes(envelopes));
envelopes = [[1,1],[1,1],[1,1]];
console.log(maxEnvelopes(envelopes));
envelopes = [[46,89],[50,53],[52,68],[72,45],[77,81]];
console.log(maxEnvelopes(envelopes));
envelopes = [[2,100],[3,200],[4,300],[5,500],[5,400],[5,250],[6,370],[6,360],[7,380]];
console.log(maxEnvelopes(envelopes));
envelopes = [[10,8],[1,12],[6,15],[2,18]];
console.log(maxEnvelopes(envelopes));
envelopes = [[1,2],[2,3],[3,4],[3,5],[4,5],[5,5],[5,6],[6,7],[7,8]];
console.log(maxEnvelopes(envelopes));
envelopes = [[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10],[11,11],[12,12],[13,13],[14,14],[15,15],[16,16],[17,17],[18,18],[19,19],[20,20],[21,21],[22,22],[23,23],[24,24],[25,25],[26,26],[27,27],[28,28],[29,29],[30,30],[31,31],[32,32],[33,33],[34,34],[35,35],[36,36],[37,37],[38,38],[39,39],[40,40],[41,41],[42,42],[43,43],[44,44],[45,45],[46,46],[47,47],[48,48],[49,49],[50,50],[51,51],[52,52],[53,53],[54,54],[55,55],[56,56],[57,57],[58,58],[59,59],[60,60],[61,61],[62,62],[63,63],[64,64],[65,65],[66,66],[67,67],[68,68],[69,69],[70,70],[71,71],[72,72],[73,73],[74,74],[75,75],[76,76],[77,77],[78,78],[79,79],[80,80],[81,81],[82,82],[83,83],[84,84],[85,85],[86,86],[87,87],[88,88],[89,89],[90,90],[91,91],[92,92],[93,93],[94,94],[95,95],[96,96],[97,97],[98,98],[99,99],[100,100],[101,101],[102,102],[103,103],[104,104],[105,105],[106,106],[107,107],[108,108],[109,109],[110,110],[111,111],[112,112],[113,113],[114,114],[115,115],[116,116],[117,117],[118,118],[119,119],[120,120],[121,121],[122, 122]];

